﻿#include <iostream>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <vector>
#include <string>
#include <fstream>

using namespace std;

class CRabinKarl
{
public:
	CRabinKarl( string _s ): s( _s ) {
		// считаем все степени p, описанной в поле private
		pPow.resize( p );
		pPow[0] = 1;
		for( size_t i = 1; i < pPow.size(); ++i )
			pPow[i] = pPow[ i - 1 ] * p;
		// считаем хэш от строки S
		hashS = 0;
		for( size_t i = 0; i < s.length(); ++i )
			hashS += ( s[i] - 'a' + 1 ) * pPow[ i % p ];
	};

	void Algo( string t, vector< int >& result ) {
		// считаем хэши от всех префиксов строки T
		vector< long long > hashPref( t.length() );
		for( size_t i = 0; i < t.length(); ++i ) {
			hashPref[i] =( t[i] - 'a' + 1 ) * pPow[ i % p ];
			if( i )  
				hashPref[i] += hashPref[ i - 1 ];
		}
		bool suit;
		// перебираем все подстроки T длины |S| и сравниваем их
		for( int i = 0; i + s.length() - 1 < t.length(); ++i ) {
			suit = true;
			long long cur_h = hashPref[ i + s.length() - 1 ];
			if( i )  
				cur_h -= hashPref[ i - 1 ];
			// приводим хэши к одной степени и сравниваем
			if( cur_h == hashS * pPow[ i % p ] ) {
				for( int j = 0; j < s.size(); j++ ) {
					if( s[j] != t[ i + j ] ) {
						suit = false;
						break;
					}
				}
				if( suit == true )
					result.push_back( i );
				
			}
		}
	}
private:
	long long hashS;
	string s;
	vector< long long > pPow;
	static const int p = 137;
};


int main() {
	string s;
	cin >> s;
	CRabinKarl rabinKarl( s );
	string path_to_file;
	getchar();
	cin >> path_to_file;
	int count = 0, prin = 0, linenum = 0;
	ifstream myfile( path_to_file );
    if( myfile.is_open() ) {
        while( !myfile.eof() ) {
			string line;
			linenum++;
            getline( myfile, line );
			vector< int > res;
			rabinKarl.Algo( line, res );
			count += res.size();
			if( res.size() != 0 ) {
				cout << "in " << linenum << " stay on: ";
				for( int i = 0; ( i < res.size() && prin < 10 ); ++i ) {
					prin++;
					cout << res[i] << " ";
				}
				cout << "positions" << endl;
			}
        }
        myfile.close();
    }
	cout << "At all s contains " << count << " times" << endl;
	return 0;
};

